import { IndexViewEngine } from "./index-view.engine";
import type {
  IMobViewController,
  IViewController,
} from "@ibiz-template/runtime";
import { MobMDViewEngine } from "./mob-md-view-engine";
import { MobEditViewEngine } from "./mob-edit-view.engine";
import { MobCustomViewEngine } from "./mob-custom-view.engine";

export const IBizViewEngine = {
  install: (): void => {
    ibiz.engine.register(
      `VIEW_APPINDEXVIEW`,
      (c: IViewController) => new IndexViewEngine(c)
    );
    ibiz.engine.register(
      `VIEW_MobMDView`,
      (c: IMobViewController) => new MobMDViewEngine(c)
    );

    ibiz.engine.register(
      `VIEW_MobEditView`,
      (c: IViewController) => new MobEditViewEngine(c)
    );
    ibiz.engine.register(
      `VIEW_DEMOBCUSTOMVIEW`,
      (c: IViewController) => new MobCustomViewEngine(c)
    );
  },
};
